<?php
// +----------------------------------------------------------------------
// | HkCms 用户验证规则
// +----------------------------------------------------------------------
// | Copyright (c) 2012-2019 http://www.hkcms.cn, All rights reserved.
// +----------------------------------------------------------------------
// | Author: 广州恒企教育科技有限公司 <admin@hkcms.cn>
// +----------------------------------------------------------------------

namespace app\content\validate;

use think\Validate;
use think\Db;

class ModelField extends Validate
{
    protected $rule = [
        'modelid'  => 'require',
        'formtype' => 'require',
        'field' => 'require|/^[a-z_0-9]+$/i|unique:ModelField',
        // 'field' => 'require|/^[a-z_0-9]+$/i',
        'css'=>'max:20',
        'name'  => 'require',
        'isbase' => 'in:0,1',
        'isadd'  =>  'in:0,1',
    ];

    protected $message  =   [
        'modelid.require' => '请选择模型！',
        'formtype.require' => '字段类型不能为空！',
        'css.max' => '表单样式名不能超过20',
        'field.require' => '字段名称必须填写！',
        'field.unique' => '该字段名称已经存在！',
        'name.require' => '字段别名必须填写！',
        'field./^[a-z_0-9]+$/i' => '字段名只支持英文！',
        'isbase.in' => '是否作为基本信息设置错误！',
        'isadd.in' => '是否前台投稿中显示设置错误！',
    ];


    protected $scene = [
        'edit'  =>  ['modelid','formtype','name','isbase','isadd'],
    ];
    // /**
    //  * 验证字段名是否已经存在
    //  * @param type $fieldName
    //  * @return boolean false已经存在，true不存在
    //  */
    // protected function isFieldUnique($fieldName) {
    //     if (empty($fieldName)) {
    //         return true;
    //     }
    //     if (Db::name('ModelField')->where(array('modelid' => $modelid, 'field' => $fieldName))->count()) {
    //         return false;
    //     }
    //     return true;
    // }
}

    // //array(验证字段,验证规则,错误提示,[验证条件,附加规则,验证时间])
    // protected $_validate = array(
    //     array('modelid', 'require', '请选择模型！'),
    //     array('formtype', 'require', '字段类型不能为空！'),
    //     array('field', 'require', '字段名称必须填写！'),
    //     array('field', 'isFieldUnique', '该字段名称已经存在！', 0, 'callback', 1),
    //     array('name', 'require', '字段别名必须填写！'),
    //     array('field', '/^[a-z_0-9]+$/i', '字段名只支持英文！', 0, 'regex', 3),
    //     array('isbase', array(0, 1), '是否作为基本信息设置错误！', 0, 'in', 3),
    //     array('isadd', array(0, 1), '是否前台投稿中显示设置错误！', 0, 'in', 3),
    // );